//
//  NSDate+Extension.swift
//  SinaWeChat
//
//  Created by mac on 15/12/13.
//  Copyright © 2015年 mac. All rights reserved.
//

import Foundation


extension NSDate {
    
    //通过新浪微博创建时间字符串返回其对应的NSDate
    class func sinaDate(creatString:String) -> NSDate? {
        
        let dt = NSDateFormatter()
        
        //制定格式
        dt.dateFormat = "EEE MMM dd HH:mm:ss z yyyy"
        
        //指定本地化信息
        dt.locale = NSLocale(localeIdentifier: "en_US")
        
        //微博的创建时间
        let creatDate = dt.dateFromString(creatString)
        
        return creatDate
    }
    
    //返回新浪微博时间的字符串
    var sinaDateString:String {
        
        let dt = NSDateFormatter()
        
        dt.locale = NSLocale(localeIdentifier: "en_US")
        
        let calendar = NSCalendar.currentCalendar()
        
        if isThisYear(self){
            
            // 进入到此,就代表是今年
            dt.dateFormat = "是今年"
            
            if calendar.isDateInToday(self){
                
                // 进入到这个地方,就代表是今天
                
                // 求出当前时间与微博创建时间的差值
                // let currentDate = NSDate()
                // 求出 currentDate 与 微博创建时间的差值
                
                let result = -self.timeIntervalSinceNow
                
                if result < 60 {
                    
                    return "刚刚"
                    
                }else if result < 60 * 60 {
                    
                    return "\(Int(result)/60)分钟前"
                }else{
                    
                    return "\(Int(result)/(60 * 60))小时前"
                }
                
            }else if calendar.isDateInYesterday(self){
                
                dt.dateFormat = "昨天 HH:mm"
            }else{
                dt.dateFormat = "MM-dd HH:mm"
            }
            
        }else {
            //不是今年
            dt.dateFormat = "yyyy-MM-dd HH:mm"
        }
        
        return dt.stringFromDate(self)
    }
    
    
    /// 判断传入的 date 与当前时间是否是同一年 (取到两个年份的字符串,判断如果其相等,就代表是同一年)
    
    private func isThisYear(date:NSDate) -> Bool{
        
        // 取到当前时间
        let currentDate = NSDate()
        
        // 要比较是否是同一年,就直接比较其年份字符串
        let dt = NSDateFormatter()
        // 指定格式
        dt.dateFormat = "yyyy"
        // 指定本地化信息
        dt.locale = NSLocale(localeIdentifier: "en_US")
        
        //取出当前的时间
        let dateStr = dt.stringFromDate(date)
        let currentDateStr = dt.stringFromDate(currentDate)
        
        
        //对比是否相同并返回bool
        return (dateStr as NSString).isEqualToString(currentDateStr)
        
        
    }
    
    
    /**
    如果今年:
    是否是今天:
    是否在1分钟之内:
    刚刚
    是否在1小时之内:
    xx分钟前
    其他:
    xx小时前
    是否是昨天:
    昨天 10:10
    其他:
    10-11 18:18
    如果不是今年:
    2014-10-11 19:19
    */
    
    
}